home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 10 Education Games / FCARD.BIN (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  8KB  |  298 lines

  1. 10 REM     FLASHCARD
  2. 20 REM
  3. 30 REM                                   ORIGINAL BY TOM RUGG AND PHIL FELDMAN
  4. 40 REM    RE-WRITTEN BY R.E.BYERS
  5. 50 REM       EXTENSIVELY                       RE-REWRITTEN BY TIM TEMPLE
  6. 60 REM       OCT 12, 1986              .
  7. 110 POKE53280,5:POKE53281,15:PRINT"[144]"
  8. 120 POKE53272,23
  9. 130 DIMA$(255):GOSUB6000 :L=50:M=5:DIMK(26)
  10. 140 DIM F$(L),B$(L),P(L)
  11. 170 PRINT"[147]      **** FLASHCARD PROGRAM ****"
  12. 180 GOTO 5270 :REM GO TO  * MENU *
  13. 185 :
  14. 189 REM        ENTER NEW CARDS +++++++++
  15. 190 K=1:PRINT
  16. 195 PRINT"     (MINIMUM 5 CARDS)"
  17. 196 PRINT"     (TYPE '@' TO QUIT)"
  18. 197 PRINT"     (TYPE _ TO START OVER)"
  19. 200 PRINT"TYPE SIDE ONE OF CARD NO.";K:GOSUB7000:F$(K)=ZI$
  20. 210 IF F$(K)="@" OR F$(K)="" THEN 280
  21. 220 IF F$(K)="_" THEN 222
  22. 221 GOTO230
  23. 222 K=K-1:IF K<1 THEN K=1
  24. 225 PRINT:PRINT"STARTING OVER":GOTO 200
  25. 230 PRINT:PRINT"SIDE TWO":GOSUB7000:B$(K)=ZI$
  26. 240 IF B$(K)="_" THEN 225
  27. 250 PRINT:IF K>L-5 THENPRINT"MAXIMUM IS"L"CARDS."
  28. 260 K=K+1:IF K<=L THEN 200
  29. 270 PRINT:PRINT"THAT'S ALL THERE'S ROOM FOR."
  30. 280 PRINT:PRINT:K=K-1:GOTO 5270
  31. 282 PRINT""
  32. 285 :
  33. 289 REM         DRILL ON A SET **********
  34. 290 IF K>=M THEN 310
  35. 300 PRINT:PRINT"THAT'S ONLY";K;"CARDS. MIN. IS";M:GOTO 5270
  36. 310 PRINT"[147]"
  37. 311 PRINT"TELL ME WHAT'S ON THE OTHER SIDE OF EACH";
  38. 320 PRINT"CARD THAT [201] SHOW YOU."
  39. 321 PRINT"DO YOU WISH TO SEE:":PRINT
  40. 322 PRINT"1.SIDE ONE ONLY"
  41. 323 PRINT"2.SIDE TWO ONLY"
  42. 324 PRINT"3.RANDOM CHOICE OF SIDES"
  43. 325 INPUT"WHAT IS YOUR CHOICE   1[157][157][157]";H$
  44. 326 H=VAL(H$):IF H=0 OR H>3 THEN 5270
  45. 330 RD=RND(-TI)
  46. 339 :
  47. 340 R=INT(K*RND(0)+1):ZZ=RND(0)
  48. 350 IF P(R)=2 THEN GOTO340
  49. 355 IF RT=R AND C<(K*2-2) THEN GOTO340
  50. 360 PRINT"[147]             "N$
  51. 362 PRINT"PROGRESS ==>"C/2" OUT OF"K
  52. 365 PRINT"[ENTER A '@' TO END]"
  53. 370 ON H GOTO 500,520
  54. 390 IF RND(1)>.52 THEN 520:REM H=3
  55. 400 :
  56. 500 PRINT F$(R):C$=B$(R)
  57. 510 GOTO 530
  58. 520 PRINT B$(R):C$=F$(R)
  59. 530 PRINT"RESPONSE:"
  60. 532 GOSUB7000:R$=ZI$
  61. 535 IFR$="@"THEN675:REM TO QUIT
  62. 560 IF R$=C$ THEN 610:REM  CORdT
  63. 565 :
  64. 570 PRINT"NO, THE CORRECT RESPONSE IS"
  65. 580 PRINT C$:PRINT"COPY IT."
  66. 585 W=W+1
  67. 590 GOSUB7000:R$=ZI$:PRINT
  68. 592 IFR$="@" OR R$="" THEN675
  69. 594 IF R$=C$ THEN 630
  70. 596 GOTO570
  71. 597 :
  72. 610 PRINT"           RIGHT![146]":FORI=1TO750:NEXTI
  73. 620 C=C+1:P(R)=P(R)+1
  74. 630 RT=R
  75. 640 IF C=K*2 THEN GOTO 675
  76. 670 GOTO 340
  77. 675 FOR ER=1 TO K:P(ER)=0:NEXT
  78. 680 PRINT"[147]"TAB(20-LEN(N$)/2)""N$
  79. 690 GOSUB 1500
  80. 700 GOTO 5270
  81. 795 :
  82. 799 REM          NEW SET OF CARDS+++++++
  83. 800 PRINT"[147]    NEW CARD SET
  84. 810 [139] K[179]2 [137]860
  85. 820 [153]"(null)HIS WILL WIPE OUT THE CARDS IN MEMORY.
  86. 830 PRINT"IS THIS OKAY? (Y OR N)
  87. 840 [161]CH$:[139] CH$[178]""[167]840
  88. 850 [139] CH$[178]"N"[167][153]"LOAD";:[137]5270
  89. 860 [153]"":N$[178]"NEW CARD SET":[137]190
  90. 870 :
  91. 890 [143]          REPLACE A CARD ++++++++
  92. 900 [153]"WHICH CARD DO YOU WISH TO REPLACE?"
  93. 910 [133] NQ$:NQ[178][197](NQ$)
  94. 912 [139] NQ[179]1 [137] 5270
  95. 915 [139]NQ[177]K [167]K[178]K[170]1:NQ[178]K:[137]195
  96. 920 [153]F$(NQ):[153]B$(NQ)
  97. 921 [153]"ANY CHANGE NEEDED? (Y OR N)
  98. 922 GETCH$:IF CH$=""THEN922
  99. 923 IF CH$="N"THEN5270
  100. 930 PRINT"TYPE SIDE ONE OF CARD #";NQ
  101. 940 GOSUB7000:F$(NQ)=ZI$:PRINT
  102. 950 PRINT"NOW TYPE SIDE TWO"
  103. 960 GOSUB7000:B$(NQ)=ZI$
  104. 970 IF F$(NQ)="" OR B$(NQ)="" THEN GOSUB 1000
  105. 980 PRINT""
  106. 990 GOTO5270
  107. 995 :
  108. 1000 FOR I=NQ+1 TO K
  109. 1010 F$(I-1)=F$(I):B$(I-1)=B$(I):NEXT
  110. 1020 IF K>1 THEN K=K-1
  111. 1030 PRINT"CARD DELETED."
  112. 1040 RETURN
  113. 1050 :
  114. 1500 PRINT
  115. 1505 IF C+W=0 THEN RETURN
  116. 1506 :
  117. 1509 REM         GIVE SCORE +++++++++++
  118. 1510 PRINT"   RESULTS:"
  119. 1520 PRINT C;"RIGHT OUT OF";C+W
  120. 1530 PRINT" GIVES YOU A GRADE OF"INT(C*100/(C+W));"%"
  121. 1540 C=0:W=0
  122. 1550 RETURN
  123. 1555 :
  124. 1998 :
  125. 1999 REM        REVIEW      ***********
  126. 2000 IF K<1 THENPRINT"NOTHING TO REVIEW":GOTO5270
  127. 2005 FOR J1=1 TO K
  128. 2010 :PRINT"[147]     "N$;
  129. 2020 :PRINTTAB(20)"[146]CARD #";J1;" OF"K
  130. 2030 :PRINT"  "F$(J1)
  131. 2040 :PRINT"  "B$(J1)
  132. 2050 :GOSUB2090
  133. 2060 NEXT J1
  134. 2069 TT=20-LEN(N$)/2
  135. 2070 PRINT"[147]"TAB(TT)""N$
  136. 2080 GOTO5270
  137. 2085 :
  138. 2090 PRINT""
  139. 2100 PRINT"      <HIT ANY KEY TO CONTINUE>[145]"
  140. 2110 GET B$:IF B$="" THEN2110
  141. 2120 PRINT"                               [145]"
  142. 2130 RETURN
  143. 3000 :
  144. 5000 IF K<1 THENPRINT"NOTHING TO SAVE":GOTO5270
  145. 5010 REM         SAVE ON DISK **********
  146. 5020 PRINT:INPUT"NAME FOR FILE";N$
  147. 5025 IF N$=""THEN 5270
  148. 5030 FL$="F."+N$+",SEQ,WRITE"
  149. 5035 OPEN15,8,15:GOSUB9700:CLOSE15
  150. 5036 IF XX THEN STOP
  151. 5040 OPEN 1,8,2,"@0:"+FL$
  152. 5050 FOR J=1 TO K
  153. 5060 :PRINT#1,F$(J):PRINT#1,B$(J)
  154. 5065 :PRINTF$(J):PRINT"  "B$(J)
  155. 5070 NEXT
  156. 5080 CLOSE 1
  157. 5090 PRINT""N$" SAVED"
  158. 5100 GOTO 5270
  159. 5105 :
  160. 5110 REM         LOAD FROM DISK ********
  161. 5120 PRINT:INPUT"NAME OF DISK FILE";N$
  162. 5130 IF N$=""THEN 5270
  163. 5150 FL$="F."+N$+",SEQ":XX=0
  164. 5155 RESTORE:GOSUB 6000
  165. 5157 OPEN15,8,15:GOSUB9700
  166. 5158 IF XX THEN CLOSE15:GOTO5270
  167. 5160 OPEN 1,8,2,"0:"+FL$+",READ
  168. 5162 [141]9700
  169. 5163 [139] XX [167] 5250
  170. 5170 K[178]1:W[178]0:C[178]0
  171. 5180 [158]PL:CP[178][194](142)
  172. 5190 [139] ST[179][177]0 [167] 5240
  173. 5195 F$(K)[178][200](A$,CP):[153]F$(K)
  174. 5200 [158]PL:CP[178][194](142)
  175. 5210 B$(K)[178][200](A$,CP):[153]"  "B$(K)
  176. 5230 K[178]K[170]1:[139] K[179]L[167] 5180
  177. 5240 K[178]K[171]1:[153]:[153]"LOADED";K;"CARDS"
  178. 5250 [160] 1:[160]15:[141]2100
  179. 5255 [153]"LOAD"[163]20[171][195](N$)[173]2)""N$
  180. 5260 [137]5270
  181. 5262 :
  182. 5265 [143]      MENU     +++++++++++++++++
  183. 5267 [153]"LOAD";
  184. 5270 [153]"             ---OPTIONS---"
  185. 5275 [153]"     1 <= INSTRUCTIONS"
  186. 5280 [153]"     2 <= DISPLAY SETS ON DISK"
  187. 5290 [153]"     3 <= LOAD FLASHCARD SET"
  188. 5300 [153]"     4 <= REVIEW CURRENT SET
  189. 5310 PRINT"     5 <= DRILL ON CURRENT SET"
  190. 5320 PRINT"     6 <= REPLACE A CARD IN MEMORY"
  191. 5330 PRINT"     7 <= START A NEW FLASHCARD SET"
  192. 5340 PRINT"     8 <= SAVE CURRENT SET ON DISK"
  193. 5350 PRINT"     9 <= END PROGRAM"
  194. 5360 GET Q$:Q=VAL(Q$):IF Q=0 THEN 5360
  195. 5370 ON Q GOTO5410, 8000, 5120, 2000, 290, 900, 800, 5000, 5380:GOTO5360
  196. 5380 IF PL<8960 THEN PL=40960
  197. 5390 POKE55,PL-INT(PL/256)*256:POKE56,PL/256:CLR:PRINT"PROGRAM ENDED.":END
  198. 5395 :
  199. 5400 REM       INSTRUCTIONS+++++++++++++
  200. 5410 PRINT"[147][201]NSTRUCTIONS"
  201. 5420 PRINT"   [212]HE FOLLOWING POINTERS WILL HELP YOU GET THE MOST FROM THIS PROGRAM.
  202. 5430 [153]"* AVOID MAKING MORE THAN 25 CARDS.
  203. 5440 PRINT"  YOU COULD MAKE UP TO 50, BUT DON'T.
  204. 5450 [153]"* REVIEW THE SET 3 OR 4 TIMES BEFORE YOU";
  205. 5460 [153]"  DRILL ON THE SET; IT SAVES AGGRAVATION"
  206. 5470 [153]"* DRILL ON THE SET, LOOKING AT THE HARD
  207. 5480 PRINT"  SIDE OF THE CARD, FIRST.  THEN DRILL
  208. 5490 [153]"  IN THE MIXED MODE.  (null)ASTLY, DRILL,
  209. 5500 PRINT"  LOOKING AT THE EASIER SIDE.
  210. 5510 [153]"* DRILLING TAKES CONCENTRATION; TRY TO
  211. 5520 PRINT"  BE SOMEWHAT AWAKE WHEN YOU RUN THIS.
  212. 5530 [153]"* IF YOU TAKE A MENTAL BREAK AFTER YOU
  213. 5540 PRINT"  HAVE DRILLED ON YOUR CARDS, THEY WILL
  214. 5550 [153]"  STAY WITH YOU BETTER.
  215. 5560 GOSUB2090
  216. 5570 PRINT"[147][201]NSTRUCTIONS"
  217. 5580 PRINT"           OPTIONS HELP"
  218. 5590 PRINT"  2 <= DISPLAY SETS ON DISK"
  219. 5600 PRINT"   WILL SHOW ALL FLASH CARD SETS ON DISK";
  220. 5610 PRINT"  3 <= LOAD FLASHCARD SET"
  221. 5630 PRINT"  4 <= REVIEW CURRENT SET
  222. 5640 [153]"   DISPLAYS EACH FLASH CARD, ONE BY ONE
  223. 5650 PRINT"  5 <= DRILL ON CURRENT SET"
  224. 5655 PRINT"  6 <= REPLACE A CARD IN MEMORY"
  225. 5660 PRINT"   WILL APPEND TO THE SET IF YOU CHOOSE
  226. 5670 [153]"   A NUMBER LARGER THAN ANY IN THE SET.
  227. 5680 PRINT"   WILL DELETE A CARD YOU CHOOSE, IF YOU";
  228. 5690 PRINT"   ENTER NOTHING ON EITHER SIDE OF IT.
  229. 5730 [153]"  7 <= START A NEW FLASHCARD SET"
  230. 5750 [153]"  8 <= SAVE CURRENT SET ON DISK"
  231. 5900 [141]2090:[137]5267
  232. 5999 :
  233. 6000 [143] ** STRING THING (UNIVERSAL) **
  234. 6010 [143] **     JIM BUTTERFIELD      **
  235. 6020 [143] STRING MUST BE FIRST VARIABLE
  236. 6030 A$[178]"ABCDEFGHIJKLMNOPQ"
  237. 6040 A$[178]A$[170]A$[170]A$[170]A$[170]A$
  238. 6050 A$[178]A$[170]A$[170]A$
  239. 6060 [143] ABOVE SETS STRING AT MAX (255)
  240. 6070 [131] 160,2,177,45,153,137,0,200,192,6
  241. 6080 [131] 208,246,162,1,32,198,255
  242. 6090 [131] 32,228,255,201,13,240,11,164,142,145
  243. 6100 [131] 140,200,132,142,196,139,208,238,76,204,255
  244. 6101 TM[178][194](55)[170]256[172][194](56)
  245. 6102 PL[178]TM[171]38
  246. 6110 [129]JZ[178]PL[164]TM[171]1:[135]XZ%:[151]JZ,XZ%:TZ[178]TZ[170]XZ%:[130]JZ
  247. 6120 [139]TZ[179][177]5535[167][144]
  248. 6125 TZ[178]0
  249. 6130 [142]
  250. 6135 :
  251. 7000 [143]      CHARACTER GET ******
  252. 7010 ZL[178]159:[143] TOTAL CHARACTERS IN      STRING (MAX=255)
  253. 7020 ZI$[178]""
  254. 7030 [161]ZG$:[139]ZG$[179][177]""[167]7050
  255. 7040 [153]"<CMD";:[137]7030
  256. 7050 [153]" CMD";:Z9[178][198](ZG$):Z8[178][195](ZI$)
  257. 7060 [139]Z9[178]20[176]Z9[178]157[167]7130
  258. 7070 [139]Z9[178]13[167]7180
  259. 7080 [139]Z8[178]ZL[167]7030
  260. 7090 [139]Z9[178]34[167] 7030
  261. 7100 [139]Z9[177]218[176]Z9[179]32[167]7030
  262. 7110 [153]ZG$;:ZI$[178]ZI$[170]ZG$
  263. 7120 [137]7030
  264. 7130 [139]Z8[178]0[167]7030
  265. 7140 [153]"CMD CMD";
  266. 7150 [139]Z8[178]1[167]7020
  267. 7160 ZI$[178][200](ZI$,Z8[171]1)
  268. 7170 [137]7030
  269. 7180 [143]      IFZ8=0THEN7030
  270. 7190 [153]:[142]
  271. 7200 :
  272. 7999 [143]         DIRECTORY *************
  273. 8000 [159]1,8,0,"$0:F.*"
  274. 8010 N$[178][199](0):[153]""
  275. 8020 [161]#1,A$,A$
  276. 8030 [161]#1,A$,A$
  277. 8040 [139] A$[178]""[167] 8120
  278. 8050 [161]#1,B1$,B2$
  279. 8070 BK$[178][196]([198](B1$[170]N$)[170][198](B2$[170]N$)[172]256)
  280. 8080 [161]#1,A$:NA$[178]NA$[170]A$
  281. 8090 [139] A$[178]""[167][141]8130:[137]8030
  282. 8100 [143]         PRINTA$;
  283. 8110 [137]8080
  284. 8120 [160]1:[137]5270
  285. 8130 :
  286. 8140 NA$[178]BK$[170]NA$:NT$[178]NA$
  287. 8150 NA$[178][202](NA$,5,23)
  288. 8160 [139] [200](NA$,1)[179][177]" " [167] [153]NT$
  289. 8170 [139] [202](NA$,3,2)[178]"F." [167] YN[178][171]1
  290. 8180 [139] YN [167] NA$[178][199](34)[170][201](NA$,19)[170]"  "[170]BK$[170]" BLOCKS"
  291. 8190 [139] YN [167] [153]NA$
  292. 8280 NA$[178]"":BK$[178]"":YN[178]0:[142]
  293. 8290 :
  294. 9700 [132]15,W,W1$,W2$,W3$
  295. 9710 [139] (W[178]50) [176] (W[179]20) [167] [142]
  296. 9720 [153]"DISK ERROR: "W1$:XX[178][171]1
  297. 9730 [142]
  298.